Online PHP Function(s){ #Test PHP functions online!; }

  •  
 

 
Added: 08/03/2012 by John

PHP benchmark script

(Custom class by John)

Description

You can benchmark and compare different PHP versions with this script. Or use it to compare different hostingproviders!
Try to beat our 'user PHP input parse' server, every week a new benchmark is placed here

Requirements

- This script will work on every PHP version


benchmark.php

Save the code below to a file named benchmark.php, and run it in your browser.
Note: The script can take a long tame on slow hosts.

<?php

/*
  PHP Benchmark
  Downloaded from: http://onlinephpfunctions.com
 */

class benchmark
{

    function 
benchmark()
    {

        
$totalTime 0;
        
$head str_pad("#"40"#");
        echo 
"<pre>$head\n|" str_pad("PHP BENCHMARK"38" "STR_PAD_BOTH) . "|\n$head\nStart : " date("m/d/Y H:i:s a") . "\nServer : {$_SERVER['SERVER_NAME']}@{$_SERVER['SERVER_ADDR']}\nPHP version : " PHP_VERSION "\nPlatform : " PHP_OS "\n$head\n";

        
$totalTime $totalTime $this->benchmark_Math();
        
$totalTime $totalTime $this->benchmark_StringManipulation();
        
$totalTime $totalTime $this->benchmark_Loops();
        
$totalTime $totalTime $this->benchmark_IfElse();


        echo 
str_pad("#"40"#") . "\n" str_pad("Total:"27) . " : " number_format($totalTime3) . " sec.</pre>";
    }

    function 
microtime_float()
    {
        list(
$usec$sec) = explode(" "microtime());
        return ((float) 
$usec + (float) $sec);
    }

    function 
benchmark_Math($runCount 150000)
    {
        
$startTime $this->microtime_float();
        
$functions = array("abs""acos""asin""atan""bindec""floor""exp""sin""tan""pi""is_finite""is_nan""sqrt");
        for (
$i 0$i $runCount$i++) {
            foreach (
$functions as $function) {
                 
call_user_func_array($function, array($i));
            }
        }
        
$time $this->microtime_float() - $startTime;
        echo 
str_pad("Math"27) . " : " number_format($time3) . " sec.\n";
        return 
$time;
    }

    function 
benchmark_StringManipulation($runCount 150000)
    {
        
$startTime $this->microtime_float();
        
$functions = array("addslashes""chunk_split""metaphone""strip_tags""md5""sha1""strtoupper""strtolower""strrev""strlen""soundex""ord");
        
$string "the quick brown fox jumps over the lazy dog";
        for (
$i 0$i $runCount$i++) {
            foreach (
$functions as $function) {
                 
call_user_func_array($function, array($string));
            }
        }
        
$time $this->microtime_float() - $startTime;
        echo 
str_pad("String Manipulation"27) . " : " number_format($time3) . " sec.\n";
        return 
$time;
    }

    function 
benchmark_Loops($runCount 10000000)
    {
        
$startTime $this->microtime_float();
        for (
$i 0$i $runCount; ++$i)
            ;
        
$i 0;
        while (
$i $runCount)
            ++
$i;
        
$time $this->microtime_float() - $startTime;
        echo 
str_pad("Loops"27) . " : " number_format($time3) . " sec.\n";
        return 
$time;
    }

    function 
benchmark_IfElse($runCount 10000000)
    {
        
$startTime $this->microtime_float();
        for (
$i 0$i $runCount$i++) {
            if (
$i == -1) {
                
            } elseif (
$i == -2) {
                
            } else if (
$i == -3) {
                
            }
        }
        
$time $this->microtime_float() - $startTime;
        echo 
str_pad("If/Else"27) . " : " number_format($time3) . " sec.\n";
        return 
$time;
    }

}

new 
benchmark();





detailed_benchmark.php

This is a more detailed version, it shows the run time per method. Credits to Paul Taulborg for this script:

<?php

// php benchmarker by Paul Taulborg (njaguar at http://forums.d2jsp.org) - Modified by Jeroen Post


$timer = new benchmarkTimer();


$head str_pad("#"36"#");

echo 
"<pre>" str_pad(' PHP ' PHP_VERSION ' BENCHMARK '36"#"STR_PAD_BOTH) . "\nStart : " date("m/d/Y H:i:s a") . "\nServer : {$_SERVER['SERVER_NAME']}@{$_SERVER['SERVER_ADDR']}\nPlatform : " PHP_OS "\nPHP version: ".phpversion()."\n$head\n";

$run_times 1000000;
$run_times_slow_function 10000;

$string_1 'bob & jim & tim & kim & me & you are &&&& =%"';
$string_2 '     what      ';
$string_3 strtoupper($string_1);
$string_4 '1234a';
$string_5 '64x32';
$string_6 'this is a link to http://google.com which is a really popular site';
$string_7 'number %d is like a string %s that likes to hex %x it out';
$string_8 $string_7 ' and then some';
$string_9 'quotes\'are "fun" to use\'. Most of the time. \\ ya';

$array_1 = array('a''b''c''d''e''f''g''h' => 1'i' => 2'j' => 0);
$array_2 = array('coffee''brown''caffeine');

$time_1 '12/29/2011 10:15:37pm';

$now time();


$timer->start();

for (
$i 0$i $run_times; ++$i)
    ;

$timer->stop('for');



$timer->start();

while (
$i 0)
    --
$i;

$timer->stop('while');



$timer->start();

for (
$i 0$i $run_times$i++) {

    
$z $i 4;

    if (
$z == 0) {
        
    } else if (
$z == 1) {
        
    } else if (
$z == 2) {
        
    } else {
        
    }
}

$timer->stop('if else');



$timer->start();

for (
$i 0$i $run_times$i++) {

    
$z $i 4;

    switch (
$z)
    {

        case 
0: break;

        case 
1: break;

        case 
2: break;

        default: break;
    }
}

$timer->stop('switch');



$timer->start();

for (
$i 0$i $run_times$i++) {

    
$z = ($i == 0);
}

$timer->stop('Ternary');



$timer->start();

for (
$i 0$i $run_times$i++)
    
str_replace('&''&amp;'$string_1);

$timer->stop('str_replace');



$timer->start();

for (
$i 0$i $run_times_slow_function$i++)
    
preg_replace("#(^|\s)(http[s]?://\w+[^\s\[\]\<]+)#i"'\1<a href="\2">\2</a>'$string_6);

$timer->stop('preg_replace');



$timer->start();

for (
$i 0$i $run_times$i++)
    
preg_match("#http[s]?://\w+[^\s\[\]\<]+#"$string_6);

$timer->stop('preg_match');



$timer->start();

for (
$i 0$i $run_times$i++)
    
count($array_1);

$timer->stop('count');



$timer->start();

for (
$i 0$i $run_times$i++) {

    isset(
$array_1['i']);

    isset(
$array_1['zzNozz']);
}

$timer->stop('isset');



$timer->start();

for (
$i 0$i $run_times$i++)
    
time();

$timer->stop('time');



$timer->start();

for (
$i 0$i $run_times$i++)
    
strlen($string_1);

$timer->stop('strlen');



$timer->start();

for (
$i 0$i $run_times$i++)
    
sprintf($string_7$i$string_5$i);

$timer->stop('sprintf');



$timer->start();

for (
$i 0$i $run_times$i++)
    
strcmp($string_7$string_8);

$timer->stop('strcmp');



$timer->start();

for (
$i 0$i $run_times$i++)
    
trim($string_2);

$timer->stop('trim');



$timer->start();

for (
$i 0$i $run_times_slow_function$i++)
    
explode('&'$string_1);

$timer->stop('explode');



$timer->start();

for (
$i 0$i $run_times$i++)
    
implode('&'$array_1);

$timer->stop('implode');



$f1 $timer->totalTime;

$timer->start();

for (
$i 0$i $run_times$i++)
    
number_format($f13);

$timer->stop('number_format');



$timer->start();

for (
$i 0$i $run_times$i++)
    
floor($f1);

$timer->stop('floor');



$timer->start();

for (
$i 0$i $run_times$i++)
    
strpos($string_2't');

$timer->stop('strpos');



$timer->start();

for (
$i 0$i $run_times$i++)
    
substr($string_110);

$timer->stop('substr');



$timer->start();

for (
$i 0$i $run_times$i++)
    
intval($string_4);

$timer->stop('intval');



$timer->start();

for (
$i 0$i $run_times$i++)
    (int) 
$string_4;

$timer->stop('(int)');



$timer->start();

for (
$i 0$i $run_times$i++) {

    
is_array($array_1);

    
is_array($string_1);
}

$timer->stop('is_array');



$timer->start();

for (
$i 0$i $run_times$i++) {

    
is_numeric($f1);

    
is_numeric($string_4);
}

$timer->stop('is_numeric');



$timer->start();

for (
$i 0$i $run_times$i++) {

    
is_int($f1);

    
is_int($string_4);
}

$timer->stop('is_int');



$timer->start();

for (
$i 0$i $run_times$i++) {

    
is_string($f1);

    
is_string($string_4);
}

$timer->stop('is_string');



$timer->start();

for (
$i 0$i $run_times$i++)
    
ip2long('1.2.3.4');

$timer->stop('ip2long');



$timer->start();

for (
$i 0$i $run_times$i++)
    
long2ip(89851921);

$timer->stop('long2ip');



$timer->start();

for (
$i 0$i $run_times_slow_function$i++)
    
date('F j, Y, g:i a'$now);

$timer->stop('date');



$timer->start();

for (
$i 0$i $run_times_slow_function$i++)
    
strftime('%B %e, %Y, %l:%M %P'$now);

$timer->stop('strftime');



$timer->start();

for (
$i 0$i $run_times_slow_function$i++)
    
strtotime($time_1);

$timer->stop('strtotime');



$timer->start();

for (
$i 0$i $run_times$i++)
    
strtolower($string_3);

$timer->stop('strtolower');



$timer->start();

for (
$i 0$i $run_times$i++)
    
strtoupper($string_1);

$timer->stop('strtoupper');



$timer->start();

for (
$i 0$i $run_times$i++)
    
md5($string_1);

$timer->stop('md5');



$timer->start();

for (
$i 0$i $run_times$i++) {

    unset(
$array_1['j']);

    
$array_1['j'] = 0;
}

$timer->stop('unset');



$timer->start();

for (
$i 0$i $run_times$i++)
    list(
$drink$run_timesolor$power) = $array_2;

$timer->stop('list');



$timer->start();

for (
$i 0$i $run_times$i++)
    
urlencode($string_1);

$timer->stop('urlencode');



$string_1e urlencode($string_1);

$timer->start();

for (
$i 0$i $run_times$i++)
    
urldecode($string_1e);

$timer->stop('urldecode');



$timer->start();

for (
$i 0$i $run_times$i++)
    
addslashes($string_9);

$timer->stop('addslashes');



$string_9e addslashes($string_9);

$timer->start();

for (
$i 0$i $run_times$i++)
    
stripslashes($string_9e);

$timer->stop('stripslashes');







echo 
$head "\n" str_pad("Total"23) . " : " number_format($timer->totalTime3) . " sec</pre>\n";

exit; 
// all done

class benchmarkTimer
{

    var 
$startTime;
    var 
$totalTime 0;

    function 
start()
    {
        
// use this method, because old php 4.x branches do not support the parameter to return a float
        
list($usec$string_ec) = explode(" "microtime());

        
$this->startTime = ((float) $usec + (float) $string_ec);
    }

    function 
stop($time_itle)
    {

        list(
$usec$string_ec) = explode(" "microtime());

        
$time = ((float) $usec + (float) $string_ec) - $this->startTime;



        echo 
str_pad($time_itle23) . " : " number_format($time5) . " sec\n";

        
$this->totalTime += $time;
    }

}

?>




 

 

 


Comments

 
 
      © 2019 OnlinePHPFunctions.com | Disclaimer |       PHP versions: 7.2.4, 7.1.0, 7.0.14, 7.0.5, 7.0.4, 7.0.3, 7.0.2, 7.0.1, 5.6.29, 5.6.20, 5.6.19, 5.6.18, 5.6.17, 5.6.2, 5.5.34, 5.5.33, 5.5.32, 5.5.31, 5.5.18, 5.5.5, 5.5.0.a6, 5.5.0.a.5, 5.5.0.a.2, 5.4.34, 5.4.21, 5.4.13, 5.4.12, 5.4.11, 5.4.10, 5.4.9, 5.4.8, 5.4.7, 5.4.6, 5.4.5, 5.4.4, 5.4.3, 5.4.2, 5.4.1, 5.4.0, 5.3.29, 5.3.27, 5.3.23, 5.3.22, 5.3.21, 5.3.20, 5.3.19, 5.3.18, 5.3.17, 5.3.16, 5.3.15, 5.3.14, 5.3.13, 5.3.12, 5.3.11, 5.3.10, 5.3.2, 5.3.1, 5.3.0, 5.2.17, 5.2.16, 5.1.6, 5.1.5, 5.0.5, 5.0.4, 4.4.9